import axios from 'axios'
import JSONbig from 'json-bigint'
// 对 axios 二次封装
// 1.设置地址
axios.defaults.baseURL = 'http://ttapi.research.itcast.cn/'
// 2. 添加请求拦截器，补充token信息
axios.interceptors.request.use(function (config) {
  // config: 表示当前请求的配置
  // 如果本地有token信息，就取出来，在这里添加到config上
  const token = localStorage.getItem('tokenStr')
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  // Do something before request is sent
  console.log('所有的请求都这里走', config)
  return config
}, function (error) {
  // Do something with request error
  return Promise.reject(error)
})
// 3. 补充transformResponse处理大整数问题
axios.defaults.transformResponse = [
  function (data) {
    try {
      // 尝试转换如果是JSON字符串，就没有问题
      // 如果不是就会到catch中  直接返回这个数据
      return JSONbig.parse(data)
    } catch (error) {
      return data
    }
  }
]
export default axios
